/**
 * FreeZzaphPostProcessorPlugin.java
 * 
 * FreeZzaph is free software; you can redistribute it
 * and/or modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 3 of
 * the License, or (at your option) any later version.
 *
 * FreeZzaph is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; see the file COPYING.
 */
package freezzaph.plugins;

import java.io.File;

/**
 * @author FreeZzaph
 *
 */
public interface FreeZzaphPostProcessorPlugin extends FreeZzaphPlugin {
	
	/**
	 * Returns the name of the plugin. Should be a short, descriptive
	 * name, contain no whitespace and be lowercase only.
	 * 
	 * @return the name of the plugin
	 */
	String getPluginName();
	
	/**
	 * Returns the description of the plugin in action. Should be short,
	 * but give the user an exact idea of what the plugin does. Should
	 * be written as an active event. An example would be "Removing
	 * duplicates using the SHA-1 message digest algorithm" 
	 * 
	 * @return the description of the plugin in action
	 */
	String getPluginAction();
	
	/**
	 * Performs the desired post-processing action on the downloaded files.
	 * @param files the files to perform post-processing on.
	 * @return the files left after post-processing. If all remain,
	 * this list should be identical to the incoming parameter list.
	 */
	File[] performPostProcessing(File[] files);

}
